%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% vim:enc=utf-8:ts=5:sw=5:et:ff=unix:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\chapter{Folders}
\label{cha:Folders}
{\em Folders} são como dobras nas quais o Vim esconde partes do texto,
algo assim:
\begin{verbatim}
     +-- 10 linhas ---------------------------
\end{verbatim}

Deste ponto em diante chamaremos os {\em folders} descritos no manual do
Vim como dobras!  Quando tiver que manipular grandes quantidades de
texto tente usar dobras, isto permite uma visualização completa do
texto.  Um modo de entender rapidamente como funcionam as dobras no
Vim seria criando uma ``dobra'' para as próximas 10 (dez) linhas com o
comando abaixo:
\begin{verbatim}
     zf10j
\end{verbatim}

Você pode ainda criar uma seleção visual
\begin{verbatim}
     Shift-v ............ seleção por linha
     j .................. desce linha
     zf ................. cria o folder
     zo ................. abre o folder
\end{verbatim}

\section{Métodos de dobras }
\label{Métodos de dobras }
O Vim tem seis modos {\em fold}, são eles:
\begin{itemize}
\item Sintaxe ({\em syntax})
\item Identação ({\em indent})
\item Marcas ({\em marker})
\item Manual ({\em manual})
\item Diferenças ({\em diff})
\item Expressões Regulares ({\em expr})
\end{itemize}

Para determinar o tipo de dobra faça
\begin{verbatim}
     :set foldmethod=tipo
\end{verbatim}

onde o tipo pode ser um dos tipos listados acima, exemplo:
\begin{verbatim}
     :set foldmethod=marker
\end{verbatim}

Outro modo para determinar o método de dobra seria colocando na última
linha do seu arquivo algo assim:
\begin{verbatim}
     vim:fdm=marker:fdl=0:
\end{verbatim}

Obs: \verb|fdm| significa {\em foldmethod}, e \verb|fdl| significa
{\em foldlevel}. Deve haver um espaço entre a palavra inicial ``vim'' e o
começo da linha este recurso chama-se {\em modeline}, leia mais na seção
``\ref{sec:Modelines} modelines'' na página \pageref{sec:Modelines}.

\section{Manipulando dobras }
\label{Manipulando dobras }

Os principais comandos relativos ao uso de dobras são:
\begin{verbatim}
     zo ................ abre a dobra
     zO ................ abre a dobra, recursivamente
     za ................ abre/fecha (alterna) a dobra
     zA ................ abre/fecha (alterna) a dobra,
                         recursivamente
     zR ................ abre todas as dobras do arquivo atual
     zM ................ fecha todas as dobras do arquivo atual
     zc ................ fecha uma dobra
     zC ................ fecha a dobra abaixo do cursor, 
                         recursivamente
     zfap .............. cria uma dobra para o parágrafo `ap'
                         atual
     zf/casa ........... cria uma dobra até a palavra casa
     zf'a .............. cria uma dobra até a marca `a'
     zd ................ apaga a dobra (não o seu conteúdo)
     zj ................ move para o início da próxima dobra
     zk ................ move para o final da dobra anterior
     [z ................ move o cursor para início da dobra
                         aberta
     ]z ................ move o cursor para o fim da dobra aberta
     zi ................ desabilita ou habilita as dobras
     zm, zr ............ diminui/aumenta nível da dobra `fdl'
     :set fdl=0 ........ nível da dobra 0 (foldlevel)
     :set foldcolumn=4 . mostra uma coluna ao lado da numeração
\end{verbatim}

Para abrir e fechar as dobras usando a barra de
espaços coloque o trecho abaixo no seu arquivo de configuração do Vim
(\verb|.vimrc|) - veja o capítulo \ref{cha:Como editar preferências no Vim},
página \pageref{cha:Como editar preferências no Vim}.
\begin{verbatim}
     nnoremap <space> @=((foldclosed(line(".")) < 0) ?
                          \ 'zc' : 'zo')<CR>
\end{verbatim}
A barra, \verb|\|, nesse comando representa o particionamento do comando em
mais de uma linha.

% Alguém confira essa informações, porque é assim que funciona comigo
Para abrir e fechar as dobras utilizando o clique do mouse no gvim, basta
acrescentar na configuração do seu \verb|.vimrc|:
\begin{verbatim}
     set foldcolumn=2
\end{verbatim}
o que adiciona uma coluna ao lado da coluna de enumeração das linhas.

\section{Criando dobras usando o modo visual}
\label{Criando folders usando o modo visual}
Para iniciar a seleção visual
\begin{verbatim}
     Esc ........ vai para o modo normal
     shift-v .... inicia seleção visual
     j .......... aumenta a seleção visual (desce)
     zf ......... cria a dobra na seleção ativa
\end{verbatim}

Um modo inusitado de se criar dobras é:
\begin{verbatim}
     Shift-v ..... inicia seleção visual
     /chapter/-2 . extende a seleção até /chapter -2 linhas
     zf .......... cria a dobra
\end{verbatim}

